This application is based upon and claims the benefit of priority from the prior Japanese Patent Applications No. P2001-392748, filed on Dec. 25, 2001; the entire contents of which are incorporated herein by reference.
1. Field of the Invention
The present invention relates to a fingerprint image judgment apparatus which judges whether or not fingerprint image data is correctly read and to program thereof.
2. Description of the Related Art
A conventional fingerprint image judgment apparatus 10 will be described with reference to FIGS. 1 to 5. FIG. 1 is a hardware configuration view of the conventional fingerprint image judgment apparatus 10.
The conventional fingerprint image judgment apparatus 10 reads a fingerprint image as digital data (fingerprint image data) by use of a fingerprint sensor 15, and outputs the fingerprint image data, which is judged to have been correctly read, to an external device (not shown) by means of a data output unit 16. xe2x80x9cFingerprint image dataxe2x80x9d is composed of a plurality of pixel values.
As shown in FIG. 1, the conventional fingerprint image judgment apparatus 10 includes a CPU 11, a storage device 12, a control memory 13, a data memory 14, the fingerprint sensor 15 and the data output unit 16.
The CPU 11 is a central processing unit for interpreting and executing a fingerprint image judgment program 121 stored in the storage device 12. The storage device 12 is a unit for storing the fingerprint image judgment program 121.
The control memory 13 and the data memory 14 are where the various data is temporarily stored in order for the CPU 11 to execute the fingerprint image judgment program 121. The entire fingerprint image data read by use of the fingerprint sensor 15 is stored temporarily in the data memory 14. In the case of using the fingerprint sensor 15 that reads fingerprint image data of, for example, 256 pixels in the X-axis direction and 256 pixels in the Y-axis direction, a data memory 14 having a memory size equivalent to 64 KB (256xc3x97256=64K) is necessary. Herein, contrast information (pixel values) related to a fingerprint image of one pixel is expressed by one byte. Moreover, the pixel value is expressed by a value in a range of xe2x80x9c0xe2x80x9d to xe2x80x9c255xe2x80x9d. When the fingerprint image of one pixel is xe2x80x9cblackxe2x80x9d, the pixel value is xe2x80x9c0xe2x80x9d. Meanwhile, when the fingerprint image of one pixel is xe2x80x9cwhitexe2x80x9d, the pixel value is xe2x80x9c255xe2x80x9d.
The fingerprint sensor 15 is a device that reads the fingerprint image as the digital data (fingerprint image data) for every line in the X-axis direction (or Y-axis direction) and stores the read fingerprint image data in the data memory 14.
FIG. 2 shows a state whereby the fingerprint sensor 15 reads the fingerprint image data for every line in the Y-axis direction and stores the read fingerprint image data (a plurality of pixel values) in the data memory 14.
In FIG. 2, the fingerprint sensor 15 reads a pixel value at a coordinate position of (X, Y)=(n, i) and stores the read pixel value at an address position of V_r [n, i] in the data memory 14.
In FIG. 2, since the fingerprint sensor 15 that reads fingerprint image data (a plurality of pixel values) of Xmax pixels in the X-axis direction and Ymax pixels in the Y-axis direction is used, the data memory 14 having a memory size of (Xmaxxc3x97Ymax) bytes or more is used.
The data output unit 16 is a unit that outputs the fingerprint image data to the external device (not shown). The fingerprint image data is the data judged to have been correctly read by the fingerprint image judgment program 121 executed by the CPU 11.
FIGS. 3 to 5 are flowcharts illustrating an operation for judging, by the fingerprint image judgment program 121, whether or not the fingerprint image data has been correctly read.
In step 701, the fingerprint sensor 15 stores all pixel values of the read fingerprint image data at the predetermined address position V_r [n, i] of the data memory 14. Herein, a variable xe2x80x9cnxe2x80x9d is a value in a range of 1 to Xmax, and a variable xe2x80x9cixe2x80x9d is a value in a range of 1 to Ymax.
In step 702, the fingerprint image judgment program 121 counts the number of ridges in the fingerprint image along all the lines in the Y-axis direction, and substitutes the number for the variable xe2x80x9cYnxe2x80x9d. In step 703, the fingerprint image judgment program 121 counts the number of ridges in the fingerprint image along all the lines in the X-axis direction, and substitutes the number for the variable xe2x80x9cXixe2x80x9d.
In step 704, the fingerprint image judgment program 121 judges whether or not the values of the variables xe2x80x9cYnxe2x80x9d and xe2x80x9cXixe2x80x9d are values in the predetermined range.
Specifically, when the values of the variables xe2x80x9cYnxe2x80x9d and xe2x80x9cXixe2x80x9d are in the predetermined range, the fingerprint image data is judged to have been correctly read by the fingerprint sensor 15 (normal end).
On the other hand, when the values of the variables xe2x80x9cYnxe2x80x9d and xe2x80x9cXixe2x80x9d are not in the predetermined range, the fingerprint image data is judged not to have been correctly read by the fingerprint sensor 15 (abnormal end).
In FIG. 4, a description will be made in detail for the operation (step 702) in which the fingerprint image judgment program 121 counts the number of ridges in the fingerprint image along all the lines in the Y-axis direction and substitutes the number for the variable Ynxe2x80x9d.
In step 801, the fingerprint image judgment program 121 substitutes the value xe2x80x9c0xe2x80x9d for the variables xe2x80x9cnxe2x80x9d, xe2x80x9cixe2x80x9d and xe2x80x9cYnxe2x80x9d (initialization). In step 802, the fingerprint image judgment program 121 increases the value of the variable xe2x80x9cnxe2x80x9d by only xe2x80x9c1xe2x80x9d. In step 803, the fingerprint image judgment program 121 increases the value of the variable xe2x80x9cixe2x80x9d by only xe2x80x9c1xe2x80x9d.
In step 804, the fingerprint image judgment program 121 judges whether or not the pixel at the address position V_r [n, i] of the data memory 14 forms a ridge in the Y-axis direction. For example, a threshold value indicating a boundary between a ridge and a valley has been set previously. When the pixel value at the address position V_r [n,ixe2x88x921] is equal to or more than the threshold value and the pixel value at the address position V_r [n, i] is less than the threshold value, the fingerprint image judgment program 121 judges that the pixel at the address position V_r [n, i] forms a ridge in the Y-axis direction.
When it is judged that the pixel at the address position V_r [n, i] of the data memory 14 forms a ridge in the Y-axis direction (YES), the process advances to step 805. Meanwhile, it is judged that the pixel at the address position V_r [n, i] of the data memory 14 does not form a ridge in the Y-axis direction (NO), the process advances to step 806.
In step 805, the fingerprint image judgment program 121 increases the value of the variable xe2x80x9cYnxe2x80x9d by 1. In step 806, the fingerprint image judgment program 121 judges whether or not the variable xe2x80x9cixe2x80x9d is equal to or more than the value xe2x80x9cYmaxxe2x80x9d.
When the variable xe2x80x9cixe2x80x9d is equal to or more than the value xe2x80x9cYmaxxe2x80x9d, the fingerprint image judgment program 121 judges that the count of the number of ridges for the nth line in the Y-axis direction is finished, and the process advances to step 807.
Meanwhile, when the variable xe2x80x9cixe2x80x9d is less than the value xe2x80x9cYmaxxe2x80x9d, the fingerprint image judgment program 121 judges that the count of the number of ridges for the nth line in the Y-axis direction is not finished, and the operations from step 803 to step 805 are repeated for the nth line in the Y-axis direction.
In step 807, the fingerprint image judgment program 121 judges whether or not the variable xe2x80x9cnxe2x80x9d is equal to or more than the value xe2x80x9cXmaxxe2x80x9d.
When the variable xe2x80x9cnxe2x80x9d is equal to or more than the value xe2x80x9cXmaxxe2x80x9d(YES) in step 807, the fingerprint image judgment program 121 judges that the count of the number of ridges for all the pixels in the Y-axis direction along all the lines in the Y-axis direction is finished, and this operation is finished. As a result, the variable xe2x80x9cYnxe2x80x9d of Xmax, which indicates the number of ridges for one line in the Y-axis direction in the fingerprint image, is obtained.
On the other hand, when the variable xe2x80x9cnxe2x80x9d is less than the value xe2x80x9cXmaxxe2x80x9d (NO), the fingerprint image judgment program 121 judges that the count of the number of ridges for the pixels in the Y-axis direction along all the lines in the Y-axis direction is not finished. Then, the operations from step 803 to step 805 are repeated for the (n+1)th line in the Y-axis direction.
In FIG. 5, a description will be made in detail for the operation (step 703) in which the fingerprint image judgment program 121 counts the number of ridges in the fingerprint image for all the lines in the X-axis direction and substitutes the number for the variable xe2x80x9cXixe2x80x9d.
In step 901, the fingerprint image judgment program 121 substitutes the value xe2x80x9c0xe2x80x9d for the variables xe2x80x9cnxe2x80x9d, xe2x80x9cixe2x80x9d and xe2x80x9cYnxe2x80x9d (initialization). In step 902, the fingerprint image judgment program 121 increases the value of the variable xe2x80x9cixe2x80x9d by 1. In step 903, the fingerprint image judgment program 121 increases the value of the variable xe2x80x9cnxe2x80x9d by 1.
In step 904, the fingerprint image judgment program 121 judges whether or not the pixel at the address position V_r [n, i] of the data memory 14 forms a ridge in the X-axis direction. For example, a threshold value indicating a boundary between a ridge and a valley has been set previously. When the pixel value at the address position V_r [nxe2x88x921, i] is equal to or more than the threshold value and the pixel value at the address position V_r [n, i] is less than the threshold value, the fingerprint image judgment program 121 judges that the pixel at the address position V_r [n, i] forms the ridge in the X-axis direction.
When it is judged that the pixel at the address position V_r [n, i] of the data memory 14 forms the ridge in the X-axis direction (YES), the operation advances to step 905. Meanwhile, it is judged that the pixel at the address position V_r [n, i] of the data memory 14 does not form the ridge in the X-axis direction (NO), the operation advances to step 906.
In step 905, the fingerprint image judgment program 121 increases the value of the variable xe2x80x9cXixe2x80x9d by only xe2x80x9c1xe2x80x9d.
In step 906, the fingerprint image judgment program 121 judges whether or not the variable xe2x80x9cnxe2x80x9d is equal to or more than the value xe2x80x9cXmaxxe2x80x9d (YES).
When the variable xe2x80x9cnxe2x80x9d is equal to or more than the value xe2x80x9cXmaxxe2x80x9d, the fingerprint image judgment program 121 judges that the count of ridges for all the pixels in the X-axis direction along the ith line in the X-axis direction is finished, and the process advances to step 907.
Meanwhile, when the variable xe2x80x9cnxe2x80x9d is less than the value xe2x80x9cXmaxxe2x80x9d (NO), the fingerprint image judgment program 121 judges that the count of ridges for all the pixels in the X-axis direction along the ith line in the X-axis direction is not finished, and the operations from step 903 to step 905 are repeated for the ith line in the X-axis direction.
In step 907, the fingerprint image judgment program 121 judges whether or not the variable xe2x80x9cixe2x80x9d is equal to or more than the numeric value xe2x80x9cYmaxxe2x80x9d. When the variable xe2x80x9cixe2x80x9d is equal to or more than the numeric value xe2x80x9cYmaxxe2x80x9d (YES), the fingerprint image judgment program 121 judges that the count of the number of ridges for all the pixels in the X-axis direction along all the lines in the X-axis direction is finished, and this operation is finished. As a result, the variables xe2x80x9cXixe2x80x9d of Ymax, which indicates the number of ridges for one line in the X-axis direction in the fingerprint image, are obtained.
On the other hand, when the variable xe2x80x9cixe2x80x9d is less than the numeric value xe2x80x9cYmaxxe2x80x9d (NO), the fingerprint image judgment program 121 judges that the count of the ridges for the pixels in the X-axis direction along all the lines in the X-axis direction is not finished. Then, the operations from step 903 to step 905 are repeated for the (i+1)th line in the X-axis direction.
However, in the case of using an inexpensive CPU 11 (for example, an 8-bit CPU and the like) in the conventional fingerprint image judgment apparatus 10, there is a problem in that utilizable memory space is reduced (to, for example, 64 KB or less) and thus the entire fingerprint image data read by use of the fingerprint sensor 15 cannot be temporarily stored therein.
The present invention was made in consideration of the above problem. An object of the present invention is to provide a fingerprint image judgment apparatus and program thereof, which enable judgment of whether or not fingerprint image data has been correctly read even in the case of using a CPU with a small utilizable memory space.
A first aspect of the present invention is summarized as a fingerprint image judgment apparatus which judges whether or not fingerprint image data composed of a plurality of pixel values indicating contrast information of pixels has been correctly read by a fingerprint sensor, comprising a first memory, a formation judgment unit, a second memory, a storage unit, a first count unit, a second count unit, and a correctibility judgment unit. The first memory stores the pixels values of a predetermined number. The formation judgment unit judges whether or not the pixel values form any one of ridges and valleys in any one direction of the X-axis and Y-axis directions in the fingerprint image data. The second memory stores a judgment result judged by the formation judgment unit. The storage unit sequentially stores the pixel values of the fingerprint image data in the first memory at intervals of a predetermined number. The fingerprint image data is read by the fingerprint sensor along one of the directions. The first count unit counts any one of the number of ridges and valleys in said one of the directions based on the pixel values stored in the first memory. The second count unit counts any one of the number of ridges and valleys in the other direction of the X-axis and Y-axis directions based on the judgment result stored in the second memory and the pixel values stored in the first memory. The correctibility judgment unit judges whether or not the fingerprint image data has been correctly read by the fingerprint sensor based on any one of the number of ridges and valleys counted by the first count unit and any one of the number of ridges and valleys counted by the second count unit with respect to the entire fingerprint image data.
In the first aspect of the present invention, preferably, the first memory stores the pixel values for one line in said one of the directions, the second memory stores the judgment result for one line in said one of the directions, the storage unit sequentially stores the pixel values in the first memory for each line in said one of the directions, and the first count unit counts any one of the number of ridges and valleys in said one of the directions along each line in said one of the directions.
In the first aspect of the present invention, preferably, the storage unit sequentially stores the pixel values in the first memory for each pixel along said one of the directions, the first count unit counts any one of the number of ridges and valleys in said one of the directions for each pixel, and the second count unit counts any one of the number of ridges and valleys in said other direction for each pixel.
In the first aspect of the present invention, preferably, the formation judgment unit judges whether or not the pixel values form any one of ridges and valleys in any one direction of the X-axis and Y-axis directions in the fingerprint image data, by comparing the pixel values stored in the first memory with a first threshold value.
In the first aspect of the present invention, preferably, the second count unit increases the number of ridges in said other direction by 1, in the case where the judgment result stored in the second memory forms a valley and where the pixel values stored in the first memory are less than a second threshold value.
In the first aspect of the present invention, preferably, the second count unit increases the number of valleys in said other direction by 1, in the case where the judgment result stored in the second memory forms a ridge and where the pixel values stored in the first memory are equal to or more than a second threshold value.
A second aspect of the present invention is summarized as a program product for allowing a computer to function as a fingerprint image judgment apparatus which judges whether or not fingerprint image data composed of a plurality of pixel values indicating contrast information of pixels has been correctly read by a fingerprint sensor, comprising a formation judgment unit, a storage unit, a first count unit, a second count unit, and a correctibility judgment unit. The formation judgment unit judges whether or not the pixel values stored in a first memory form any one of ridges and valleys in any one direction of the X-axis and Y-axis directions in the fingerprint image data and for storing the judgment result in a second memory. The storage unit sequentially stores the pixel values of the fingerprint image data in the first memory at intervals of a predetermined number. The fingerprint image data is read by the fingerprint sensor along said one of the directions. The first count unit counts any one of the number of ridges and valleys in said one of the directions based on the pixel values stored in the first memory. The second count unit counts any one of the number of ridges and valleys in the other direction of the X-axis and Y-axis directions based on the judgment result stored in the second memory and the pixel values stored in the first memory. The correctibility judgment unit judges whether or not the fingerprint image data has been correctly read by the fingerprint sensor based on any one of the number of ridges and valleys counted by the first count unit and any one of the number of ridges and valleys counted by the second count unit with respect to the entire fingerprint image data.